/*
 * Išspaudzinimo į ekraną funkcijos
 */
#ifndef MONITOR_H
#define MONITOR_H

#include "task.h"

/* Keleta konstantų */
#define BLACK                   0x00 //!< Black color.
#define BLUE                    0x01 //!< Blue color.
#define GREEN                   0x02 //!< Green color.
#define CYAN                    0x03 //!< Cyan color.
#define RED                     0x04 //!< Red color.
#define MAGENTA                 0x05 //!< Magenta color.
#define BROWN                   0x06 //!< Brown color.
#define LIGHT_GREY              0x07 //!< Light grey color.
#define GREY                    0x08 //!< Grey color.
#define LIGHT_BLUE              0x09 //!< Light blue color.
#define LIGHT_GREEN             0x0A //!< Light green color.
#define LIGHT_CYAN              0x0B //!< Light cyan color.
#define LIGHT_RED               0x0C //!< Light red color.
#define LIGHT_MAGENTA           0x0D //!< Light magenta color.
#define YELLOW                  0x0E //!< Yellow color.
#define WHITE                   0x0F //!< White color.
#define DEFAULT_COLOR           0x0F

/*--Funkcijų antrašės--*/
/* X-[0;79] Y-[0;24] */
void gotoXY(u8int X, u8int Y);
/* Pakeičia spalva ekrane simbolių */
void monitor_color(u8int );
/* Pakeičia spalva ekrane fono */
void monitor_font(u8int );
/* Atspauzdinti simbolį su klaviatūra */
void keyboard_monitor_put(char , short);
/* Išspaudzina viena simbolį ekrane */
void monitor_put(char );
/* Išvalo ekraną */
void monitor_clear();
/* Išspaudzina ASCII simbolių eilutę ekrane */
void monitor_write(char *);
/* Išspaudzina šešioliktainį skaičių ekrane */
void monitor_write_hex(u32int );
/* Išspaudzina dešimtainį skaičių ekrane */
void monitor_write_dec(u32int );
void monitor_reload_next();
void monitor_reload(u32int );
u32int getcurrent();
void setcurrent();
void finish(task_t *);
void monitor_update();

#endif /* MONITOR_H */
